@languages: "1c",
    "abnf",
    "accesslog",
    "actionscript",
    "ada",
    "apache",
    "applescript",
    "cpp",
    "arduino",
    "armasm",
    "xml",
    "asciidoc",
    "aspectj",
    "autohotkey",
    "autoit",
    "avrasm",
    "awk",
    "axapta",
    "bash",
    "basic",
    "bnf",
    "brainfuck",
    "cal",
    "capnproto",
    "ceylon",
    "clean",
    "clojure",
    "clojure-repl",
    "cmake",
    "coffeescript",
    "coq",
    "cos",
    "crmsh",
    "crystal",
    "cs",
    "csp",
    "css",
    "d",
    "markdown",
    "dart",
    "delphi",
    "diff",
    "django",
    "dns",
    "dockerfile",
    "dos",
    "dsconfig",
    "dts",
    "dust",
    "ebnf",
    "elixir",
    "elm",
    "ruby",
    "erb",
    "erlang-repl",
    "erlang",
    "excel",
    "fix",
    "flix",
    "fortran",
    "fsharp",
    "gams",
    "gauss",
    "gcode",
    "gherkin",
    "glsl",
    "go",
    "golo",
    "gradle",
    "groovy",
    "haml",
    "handlebars",
    "haskell",
    "haxe",
    "hsp",
    "htmlbars",
    "http",
    "hy",
    "inform7",
    "ini",
    "irpf90",
    "java",
    "javascript",
    "jboss-cli",
    "json",
    "julia",
    "julia-repl",
    "kotlin",
    "lasso",
    "ldif",
    "leaf",
    "less",
    "lisp",
    "livecodeserver",
    "livescript",
    "llvm",
    "lsl",
    "lua",
    "makefile",
    "mathematica",
    "matlab",
    "maxima",
    "mel",
    "mercury",
    "mipsasm",
    "mizar",
    "perl",
    "mojolicious",
    "monkey",
    "moonscript",
    "n1ql",
    "nginx",
    "nimrod",
    "nix",
    "nsis",
    "objectivec",
    "ocaml",
    "openscad",
    "oxygene",
    "parser3",
    "pf",
    "php",
    "pony",
    "powershell",
    "processing",
    "profile",
    "prolog",
    "protobuf",
    "puppet",
    "purebasic",
    "python",
    "q",
    "qml",
    "r",
    "rib",
    "roboconf",
    "routeros",
    "rsl",
    "ruleslanguage",
    "rust",
    "scala",
    "scheme",
    "scilab",
    "scss",
    "shell",
    "smali",
    "smalltalk",
    "sml",
    "sqf",
    "sql",
    "stan",
    "stata",
    "step21",
    "stylus",
    "subunit",
    "swift",
    "taggerscript",
    "yaml",
    "tap",
    "tcl",
    "tex",
    "thrift",
    "tp",
    "twig",
    "typescript",
    "vala",
    "vbnet",
    "vbscript",
    "vbscript-html",
    "verilog",
    "vhdl",
    "vim",
    "x86asm",
    "xl",
    "xquery",
    "zephir",

    // aliases
    "as",
    "apacheconf",
    "osascript",
    "c",
    "cc",
    "h",
    "c++",
    "h++",
    "hpp",
    "arm",
    "html",
    "xhtml",
    "rss",
    "atom",
    "xjb",
    "xsd",
    "xsl",
    "plist",
    "adoc",
    "ahk",
    "sh",
    "zsh",
    "bf",
    "capnp",
    "icl",
    "dcl",
    "clj",
    "cmake.in",
    "coffee",
    "cson",
    "iced",
    "cls",
    "crm",
    "pcmk",
    "cr",
    "csharp",
    "md",
    "mkdown",
    "mkd",
    "dpr",
    "dfm",
    "pas",
    "pascal",
    "freepascal",
    "lazarus",
    "lpr",
    "lfm",
    "patch",
    "jinja",
    "bind",
    "zone",
    "docker",
    "bat",
    "cmd",
    "dst",
    "rb",
    "gemspec",
    "podspec",
    "thor",
    "irb",
    "erl",
    "xlsx",
    "xls",
    "f90",
    "f95",
    "fs",
    "gms",
    "gss",
    "nc",
    "feature",
    "golang",
    "hbs",
    "html.hbs",
    "html.handlebars",
    "hs",
    "hx",
    "https",
    "hylang",
    "i7",
    "toml",
    "jsp",
    "js",
    "jsx",
    "wildfly-cli",
    "ls",
    "lassoscript",
    "mk",
    "mak",
    "mma",
    "m",
    "moo",
    "mips",
    "pl",
    "pm",
    "moon",
    "nginxconf",
    "nim",
    "nixos",
    "mm",
    "objc",
    "obj-c",
    "ml",
    "scad",
    "pf.conf",
    "php3",
    "php4",
    "php5",
    "php6",
    "ps",
    "pp",
    "pb",
    "pbi",
    "py",
    "gyp",
    "k",
    "kdb",
    "qt",
    "graph",
    "instances",
    "mikrotik",
    "rs",
    "sci",
    "console",
    "st",
    "do",
    "ado",
    "p21",
    "step",
    "stp",
    "styl",
    "yml",
    "YAML",
    "tk",
    "craftcms",
    "ts",
    "vb",
    "vbs",
    "v",
    "sv",
    "svh",
    "tao",
    "xpath",
    "xq",
    "zep";


// language label
.language-label(@i: length(@languages)) when (@i > 0) {
    .language-label(@i - 1);
    @language: extract(@languages, @i);
    &[class~="@{language}"]:before,
    &[class~="highlight-source-@{language}"]:before {
        content: @language;
    }
}


@code-bg: #353535;
.highlight {
    display: block;
    width: 100%;
    overflow-x: auto;
    font-size: 14px;
    line-height: 16px;
    background-color: #272822;
    background-image: linear-gradient(@code-bg, @code-bg);
    background-repeat: repeat-x;
    background-size: 100% 28px;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar;

    &:before {
        content: 'code';
        display: block;
        padding: 0 8px;
        line-height: 28px;
        color: #989898;
        font-family: monospace;
    }
    .language-label();

    .gutter {
        width: 30px;

        pre {
            padding-right: 8px;
            padding-left: 8px;
            color: #90908a;
            text-align: right;
        }
    }
    .code {}
    .line {}

    &,
    .tag,
    .subst {
        color: #f8f8f2;
    }

    .strong,
    .emphasis {
        color: #a8a8a2;
    }

    .bullet,
    .quote,
    .number,
    .regexp,
    .literal,
    .link {
        color: #ae81ff;
    }

    .code,
    .title,
    .section,
    .selector-class {
        color: #fff;
    }

    .strong {
        font-weight: bold
    }

    .emphasis {
        font-style: italic
    }

    .keyword,
    .selector-tag,
    .name {
        color: #f92672;
    }

    .attr {
        color: #a6e22c;
    }

    .symbol,
    .attribute {
        color: #66d9ef
    }

    .params {
        color: #fd9720;
    }

    .class .title,
    .function .title {
        color: #a6e22e;
    }

    .string,
    .type,
    .built_in,
    .builtin-name,
    .selector-id,
    .selector-attr,
    .selector-pseudo,
    .addition,
    .variable,
    .template-variable {
        color: #e6db74
    }

    .comment,
    .deletion,
    .meta {
        color: #75715e
    }
}

.markdown-body .highlight {
    margin-bottom: 16px;

    table {
        margin-bottom: 0;

        tr {
            background-color: transparent;
            border-top: none;
        }
        td {
            padding: 0;
            border: none;
        }
    }
    pre {
        margin-bottom: 0;
        background-color: transparent;
        border-radius: 0;
    }
}
